package Proyecto2;

import java.util.ArrayList;

public class Nivel  {
	protected NaveJugador MiNave;
	protected Logica juego;
	protected ArrayList<NaveEnemiga> Enemigos;
	
	public Nivel(){
		Enemigos= new ArrayList<NaveEnemiga>();
	}
	
	public void Juego(){
		int contX= juego.getWidth()/2-200;
		int contY=-50;
		
			for (int j=0; j<2; j++){
				NaveEnemiga n= new Pez(this);
				agregarNaveEnemiga(n, contX, contY);
				contX+=252;
				contY-=120;
			}
			contX=100;
			contY=-373;
			for (int j=0; j<3; j++){
				NaveEnemiga n= new Pez(this);
				agregarNaveEnemiga(n, contX, contY);
				contX-=184;
				contY-=100;
				NaveEnemiga n2= new Pez(this);
				agregarNaveEnemiga(n2, contX, contY);
				contX+=184*2;
				contY-=57;
				
			}
			contX= 30;
			contY=-1050;
			for (int j=0; j<2; j++){
				NaveEnemiga n= new Pez(this);
				agregarNaveEnemiga(n, contX, contY);
				contX+=500;
				contY-=17;
			}

		Colisiones();		
	}
	
	public void elegirNavePcipal(NaveJugador n){
		MiNave= n;
		preparar();
	}
	
	protected void agregarNaveEnemiga(NaveEnemiga n, int x, int y){
		Enemigos.add(n);
		n.setBounds(0, 0,n.getIcon().getIconWidth(), n.getIcon().getIconHeight());
		preparar(n, x, y);
	}
	
	public void agregarArmaJugador(ArmaJugador a){
	    juego.jPanelNivel.add(a);	 
	}
	
	public int obtenerPuntaje(){
		return MiNave.obtenerPuntaje();
	}
	
	public NaveJugador obtenerNaveJugador(){
		return MiNave;
	}
	
	public ArrayList<NaveEnemiga> obtenerNavesEnemigas(){
		return Enemigos;
	}
	
	public void Terminar(){
		MiNave.setVisible(false);
		MiNave.arma.setVisible(false);
		juego.jLabelPerdi.setVisible(true);
		
	}
	
	protected void preparar(NaveEnemiga n, int x, int y) {
		n.setLocation(x,y);
		juego.jPanelNivel.add(n);
		(new Thread(n)).start();
	}
	
	protected void preparar() {
		int mitad = juego.getWidth() / 2;
		this.MiNave.setLocation(mitad-(MiNave.getWidth()/2), juego.getHeight()-MiNave.getHeight()-35);
	}
	
	public void setJuego(Logica juego) {
		this.juego = juego;
	}
	
	private void Colisiones(){
		MiNave.Colisiones();

	}
	
}
